/*
 * Created by SharpDevelop.
 * User: David
 * Date: 2006-12-20
 * Time: 03:37
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */

using System;
using Labb4.Pooman.Players;

namespace Labb4.Pooman.Game
{
	/// <summary>
	/// The different states of the table, synchronized with the different states of the game
	/// 
	/// Implements the State design pattern
	/// </summary>
	public abstract class TableGameState
	{
		#region constructors
		
		/// <summary>
		/// Constructor, does nothing
		/// </summary>
		public TableGameState()
		{
		}
		
		#endregion
		
		#region abstracts
		
		/// <summary>
		/// Used by Table, should load the correct cards from the table in the received player.
		/// GameStatePhase1 should take all cards and put in the players second hand, and
		/// GameStatePhase2 should take the oldest played set of cards and put in the players
		/// second hand.
		/// </summary>
		/// <param name="player">The player who should receive the cards</param>
		public abstract void GetCards(Player player);
		
		#endregion
	}
}
